﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace BDPAutodetect.Models
{
    /// <summary>
    /// 检测指标从机协议表
    /// </summary>
    public class TTargetSlave : TBase
    {
        /// <summary>
        /// 工位ID
        /// </summary>
        public int StationID { get; set; }
        /// <summary>
        /// 从机ID
        /// </summary>
        public int SlaveID { get; set; }
        /// <summary>
        /// 检测指标ID
        /// </summary>
        public int TargetID { get; set; }
        /// <summary>
        /// 检测指标映射ID（默认，0未知）
        /// </summary>
        public int TargetMapID { get; set; }
        /// <summary>
        /// 种类（0未知，1客户主机端，2机电电机端，3传感信号端）
        /// </summary>
        public int Category { get; set; }

        /// <summary>
        /// 发送指令（一般为ASCII）
        /// </summary>
        public string? SlaveCommand { get; set; }

        /// <summary>
        /// 校验指令（一般为ASCII）
        /// </summary>
        public string? CheckCommand { get; set; }

        /// <summary>
        /// 地址域/起始/头(一般为Modbus)
        /// </summary>
        public int SlaveAddress { get; set; }
        /// <summary>
        /// 功能码(一般为Modbus)
        /// </summary>
        public int SlaveFuncCode { get; set; }
        /// <summary>
        /// 寄存器地址/起始地址(一般为Modbus)
        /// </summary>
        public int RegisterAddress { get; set; }
        /// <summary>
        /// 校验模式(对应枚举类型，默认0 CRC， 一般为Modbus)
        /// </summary>
        public int CheckMode { get; set; }

        /// <summary>
        /// 数据类型（对应枚举类型，默认0 String）
        /// </summary>
        public int DataType { get; set; }
        /// <summary>
        /// 数据单位（对应枚举类型，默认0 None）
        /// </summary>
        public int DataUnit { get; set; }
        /// <summary>
        /// 显示单位（对应枚举类型，默认0 None）
        /// </summary>
        public int DisplayUnit { get; set; }
        /// <summary>
        /// 数据单位精度(0表示无，非0表示单位转换值)
        /// </summary>
        public decimal DataPrecision { get; set; }

        /// <summary>
        /// 发送等待标识状态（0 No，1 Yes）
        /// </summary>
        public int SendWaitFlag { get; set; }
        /// <summary>
        /// 检测通过等待标识状态（0 No，1 Yes）
        /// </summary>
        public int DetectWaitFlag { get; set; }
        /// <summary>
        /// 检测许可标识状态（0 No，1 Yes）
        /// </summary>
        public int PermissionFlag { get; set; }
    }
}
